home *** CD-ROM | disk | FTP | other *** search
INI File | 1995-06-30 | 15.4 KB | 488 lines |
- [Variables]
- ;
- ; >>>
- ; >>> BEGINNING OF NLS -- Start translating here.
- ; >>>
- ; >>> Do not translate the variable name on the left, only translate the
- ; >>> quoted string.
- ; >>>
- ;
- $APPNAME = "MarkVision Installation"
- $FINALMSG = "Congratulations! MarkVision has been successfully installed."
-
- $Str_MarkVision = "MarkVision Printer Utility"
- $Str_MarkVision_Remote = "MarkVision (running from server)"
-
- $Str_MarkVision_Misc = "Printer Utility Support Files"
- $Str_Sounds = "Printer Utility Sound Files"
- $Str_SpeakerDriver = "PC Speaker Driver"
-
- $Str_DefaultMarkVisionGroup = "MarkVision Printer Utility"
- $Str_ItemName_ReadMe = "Optra E Read Me"
- $Str_ItemName_Support = "Lexmark Support"
-
- $Str_Prompt_ChooseDir = "We recommend installing MarkVision into its own directory. Please enter a path in the field to the right."
- $Str_Prompt_ProgmanTitle = "Create Program Manager Item"
- $Str_Prompt_ProgmanMsg = "To create a new Program Manager item for MarkVision, choose a group name and item name below and press the <OK> button."
- $Str_Prompt_AutoMarkVision = "Do you want to launch MarkVision each time you start Windows?"
- $Str_Prompt_SoundDriver = "Installing sound driver for your PC speaker..."
- $Str_Prompt_No386Enh = "Before running the printer utility, you must be in Windows 386 Enhanced mode. The utility will still be installed."
-
- $Str_Disk_Setup = "Windows Setup Diskette"
- $Str_Disk_Driver = "Windows Setup Diskette"
-
- $Str_Desc_LexpanelINI = "MarkVision settings file"
-
- ; >>>
- ; >>> END OF NLS -- Stop translating here
- ; >>>
-
- ;
- ; System variables...
- ;
- $APPDIR = ""
- $READMEFILE = "rdme4026.txt"
- $SUPPORTFILE = "software.txt"
- $INSTALLMETHODS = "E"
- $INSTALLMODE = "E"
- $INSTALLMACRO = "InstallRemoteMarkVision"
- $SIZECOMPONENT = "MarkVision"
- $MINTEMPSPACE = "500"
-
- ;
- ; Switches that toggle installation of the different components.
- ; Network administrators may override these in an extra config file
- ; to tailor for their own environment.
- ;
- $Install_MarkVision = $YES
- $Install_ProgmanGroup = $YES
- $Install_StartupGroup = ""
- $StartUpGroupName = "StartUp"
- $Install_RemoteMV = $NO
-
-
- ;
- ; INI files
- ;
- $LexpanelINI = $APPDIR
- $LexIniCfgSec = "config"
- $LexIniDefMdlCls = "5"
-
-
- ;
- ; Other globals...
- ;
- $RemoteMarkVisionDir = "" ; $SERVERDIR + $DirName_RemoteMV
- $UserMVGroup = $Str_DefaultMarkVisionGroup
-
-
- ;
- ; String constants
- ;
- $Exe_MarkVision = "lexpanel.exe"
- $Str_INI_Updated = "updated"
- $Str_DefaultMVDir = "\\markvis"
- $DirName_RemoteMV = "mv.w16"
-
-
- ;
- ; This stores the name of MarkVision as entered by the user
- ;
- $UserMVName = $Str_MarkVision
-
-
- ;
- ; Temporary strings
- ;
- $TempString = ""
- $TempAppDir = ""
- $TempServerAppDir = ""
-
-
-
- [Disks]
-
- MVSetupDisk = $Str_Disk_Setup, setupdsk.bmp, 255, 0, 0
- MVDrvDisk = $Str_Disk_Driver, drvdisk.bmp, 255, 0, 0
-
-
-
- [Libraries]
-
- MVUtility = linutil.dll
-
-
-
- [Banners]
-
- MarkVisionBanner = markvisn.bmp
-
-
-
- [Components]
-
- ; Normal installation components -- for remotely runnable MarkVision,
- ; $APPDIR will be $RemoteMarkVisionDir
-
- Sounds = $Str_Sounds, , $APPDIR, MVSetupDisk, 250,
- (wavcpef.zip, wavcpf.zip, wavcpjf.zip, wavdff.zip, wavmff.zip,
- wavobff.zip, wavpnuif.zip, wavrpsf.zip, wavspf.zip, wavtcof.zip,
- wavtyf.zip, wavlpef.zip, wavcdcf.zip, wavrtcf.zip, wavfff.zip)
-
- MarkVision = $Str_MarkVision, MarkVisionBanner, $APPDIR, MVSetupDisk, 2100,
- (exepanel.zip, hlppanel.zip, dllsunfl.zip, pss.zip,
- =rdme4026.txt, =software.txt, psfsunfl.zip, dlltab11.zip,
- dllgenfn.zip, dllqmgmt.zip, Sounds)
-
- SpeakerDrv = $Str_SpeakerDriver, , $SYSTEMDIR, MVSetupDisk, 15, drvspeak.zip
-
- MVIni = $Str_Desc_LexpanelINI, , $TEMPDIR, MVSetupDisk, 1, inipanel.zip
-
-
- ; Server installation components
-
- Sounds_Server = $Str_Sounds, , $SERVERAPPDIR, MVSetupDisk, 150,
- (wavcpef.zip, wavcpf.zip, wavcpjf.zip, wavdff.zip, wavmff.zip,
- wavobff.zip, wavpnuif.zip, wavrpsf.zip, wavspf.zip, wavtcof.zip,
- wavtyf.zip, wavlpef.zip, wavcdcf.zip, wavrtcf.zip, wavfff.zip)
-
- MarkVision_Server = $Str_Markvision, , $SERVERAPPDIR, MVSetupDisk, 371,
- (exepanel.zip, hlppanel.zip, dllsunfl.zip, dlltab11.zip,
- dllgenfn.zip, dllqmgmt.zip, drvspeak.zip, pss.zip, psfsunfl.zip,
- =mv.lin, =markvisn.bmp, =rdme4026.txt, =software.txt,
- Sounds_Server, MVIni_Server)
-
- MVIni_Server = $Str_Desc_LexpanelINI, , $SERVERAPPDIR, MVSetupDisk,
- 1, inipanel.zip
-
-
- ; Components for creating the remote MV server dir
-
- RemoteMV_Misc_Server = $Str_MarkVision_Remote, , $DirName_RemoteMV,
- MVDrvDisk, 65, (=mv.lin, =vxd.lin, =help.lin, =util.lin, =linutil.dll,
- =shelldde.dll, =markvisn.bmp, =ctl3d.dll, drvspeak.zip)
-
- RemoteMV_Misc_Remote = $Str_MarkVision_Remote, , $APPDIR, MVDrvDisk,
- 155, (dllbwcc.zip, inipanel.zip)
-
- RemoteMV_Server_Size = "", , , , 1, (RemoteMV_Misc_Server,
- RemoteMV_Misc_Remote, MarkVision)
-
-
-
-
- [ServerProducts]
-
- RemoteMV_Misc_Server = "P"
-
-
-
-
- [Macros]
-
- ; InstallProgmanGroup: Creates a Program Manager group for MarkVision.
- ; Return value is empty (we use the return value
- ; for a temporary string.)
- ;
- InstallProgmanGroup()
- (
- ; Build the full pathname to lexpanel.exe
- MakePathName($InstallProgmanGroup, , $APPDIR, $Exe_MarkVision)
-
- ; When in Express mode, do not even ask them whether they want to
- ; create a program manager item...
- ; $UserMVName holds the name of the MarkVision program, and is
- ; modified by whatever the user enters.
- IfEqual($INSTALLMODE, "E",
- CallLibrary(MVUtility, CreateProgmanItem, $UserMVName,
- ($Str_DefaultMarkVisionGroup, $UserMVName,
- $InstallProgmanGroup, $NO)),
- CallLibrary(MVUtility, CreateProgmanItem, $UserMVName,
- ($Str_DefaultMarkVisionGroup, $UserMVName,
- $InstallProgmanGroup, $NO, $Str_Prompt_ProgmanTitle,
- $Str_Prompt_ProgmanMsg, $HelpID_MVCreateItem,
- "$UserMVGroup")))
-
-
- ; Add MarkVision to the StartUp group?
- IfEqual($Install_StartupGroup, "",
- ChooseYesNo($Install_StartupGroup, $Str_Prompt_AutoMarkVision, $YES,
- $HelpID_MVStartUpGroup))
-
- ; Use the same name entered by the user above. Or, if they skipped it,
- ; use the default name...
- ; grw:950320 - If 'skip'ped, '$UserMVName' is unchanged
- ;IfEqual($UserMVGroup, "", SetVariable($UserMVName, $Str_MarkVision))
-
- ; Create the item in the StartUp group
- IfEqual($Install_StartupGroup, $YES,
- CallLibrary(MVUtility, CreateProgmanItem, , ($StartUpGroupName,
- $UserMVName, $InstallProgmanGroup, $YES)))
-
-
- ; Add textfile 'items' to MV group if there is an MV group,
- ; or if MV is added to the 'startup' group
- IfEqual($UserMVGroup, "", IfEqual($Install_StartupGroup, $YES,
- CallMacro(InstallTextIcons, , $Str_DefaultMarkVisionGroup)),
- CallMacro(InstallTextIcons, , $UserMVGroup))
- )
-
-
-
- ; CustomDirectory: Called from "Custom Installation" window when user
- ; presses the <Directories> button.
- ;
- CustomDirectory()
- (
- ; Pick an installation directory
- ChoosePath($APPDIR, $Str_Prompt_ChooseDir, $APPDIR,
- $HelpID_ChooseMarkVisionDir)
-
- CallMacro(UpdateNetDirectory, , )
- )
-
-
-
- ; InstallMarkVision: Install MarkVision files
- ; Return value ignored (we use the return value as
- ; a temporary string.)
- ;
- InstallMarkVision()
- (
- ; Warn the user when they cannot run MarkVision
- CallLibrary(MVUtility, In386Enh, $InstallMarkVision, )
- IfEqual($InstallMarkVision, "N", ShowPopupMessage($Str_Prompt_No386Enh))
-
- ; For remote MarkVision, temporarily set the directories to
- ; reference our new MarkVision dir
- MakePathName($RemoteMarkVisionDir, , $SERVERDIR, $DirName_RemoteMV)
- SetVariable($TempAppDir, $APPDIR)
- SetVariable($TempServerAppDir, $SERVERAPPDIR)
- IfEqual($INSTALLMODE, "S", SetVariable($APPDIR, $RemoteMarkVisionDir))
- IfEqual($INSTALLMODE, "S", SetVariable($SERVERAPPDIR, $DirName_RemoteMV))
-
- ; For remote MarkVision, we need to install the component that will
- ; create the product directory and update products.ini. For normal
- ; installations, we just make sure the directory exists.
- IfEqual($INSTALLMODE, "S",
- InstallComponent(RemoteMV_Misc_Server, , "S"),
- CreatePath($APPDIR))
-
- ; For installing remote (runnable) MarkVision to a server, we need
- ; some files unpacked into the $RemoteMarkVisionDir
- IfEqual($INSTALLMODE, "S",
- InstallComponent(RemoteMV_Misc_Remote, , "N"))
-
- ; Install MarkVision
- InstallComponent(MarkVision, , "N")
-
- ; Make sure the VXD is installed
- IfEqual($INSTALLMODE, "S",
- InstallComponent(VXD_Server, , "S"),
- CallMacro(InstallVXD, , ))
-
- ; Restore $APPDIR and $SERVERAPPDIR
- SetVariable($APPDIR, $TempAppDir)
- SetVariable($SERVERAPPDIR, $TempServerAppDir)
-
- ; We need to put our 'new' lexpanel.ini into $TEMPDIR, if not
- ; installing to server.
- IfEqual($INSTALLMODE, "S", NOP(),
- InstallComponent(MVIni))
-
- ; Finish up...
- IfEqual($INSTALLMODE, "S",
- CallMacro(FinishRemoteMVInstall, , ),
- CallMacro(ConfigureMarkVision, , $APPDIR))
- )
-
-
-
- ; FinishRemoteMVInstall: Performs remote installation duties not handled
- ; by InstallMarkVision().
- ;
- FinishRemoteMVInstall()
- (
- ; Copy the remotemv.rsp file into the MarkVision dir as cmdline.rsp
- MakePathName($FinishRemoteMVInstall, ,
- $RemoteMarkVisionDir, "cmdline.rsp")
- MakePathName($TempString, , $SCRIPTDIR, "remotemv.rsp")
- CopyFile($TempString, $FinishRemoteMVInstall)
- )
-
-
-
- ; ConfigureMarkVision: Sets up INI files, etc..., so that the installed
- ; MarkVision is actually runnable.
- ; $IniFileDir points to the directory that holds the
- ; lexpanel.ini file.
- ; grw:950307 - Actually $IniFileDir points to where
- ; lexpanel.ini will be. At this point, whether
- ; setting-up to run locally or from server,
- ; lexpanel.ini should be in $TEMPDIR
- ConfigureMarkVision($IniFileDir)
- (
- ; Set the $LexpanelINI variable to point to the MarkVision INI file
- MakePathName($LexpanelINI, , $IniFileDir, "lexpanel.ini")
- SetINI($WinINI, "MarkVision", "configuration", $LexpanelINI)
-
- ; Update the lexpanel.ini file
- ; grw:950306 - '$IniFileDir' must be set correctly at this point,
- ; as MergeINI depends upon it.
- ; grw:950307 - Our new (or only) lexpanel.ini has just been installed
- ; to '$TEMPDIR' at this point.
- MakePathName($ConfigureMarkVision, , $TEMPDIR, "lexpanel.ini")
- MergeINI($LexpanelINI, $ConfigureMarkVision)
-
- ; correct the 'eventcount' number under '[sounds]' in lexpanel.ini .
- CountINI($LexpanelINI, "sounds", "wav", $TempString)
- SetINI($LexpanelINI, "sounds", "eventcount", $TempString)
-
- ; Tell other folks where MarkVision is
- MakePathName($ConfigureMarkVision, , $APPDIR, $Exe_MarkVision)
- SetINI($WININI, "MarkVision", "Exe", $ConfigureMarkVision)
-
- ; When this machine does not have a wave device, install the
- ; PC-Speaker driver
- GetINI($SystemINI, "drivers", "wave", $ConfigureMarkVision)
- IfEqual($ConfigureMarkVision, "", CallMacro(InstallSoundDriver, , ))
-
- ; Tell MarkVision to check the server for product updates when it starts
- SetINI($LexpanelINI, $LexIniCfgSec, "ServerCheck", "1")
-
- ; Make sure that 'npatrace' in lexpanel.ini is initially turned off
- SetINI($LexpanelINI, $LexIniCfgSec, "npatrace", "0")
-
- ; Since 5/11/95, we need to set the 'defaultmodelclass' for each product.
- SetINI($LexpanelINI, $LexIniCfgSec, "defaultmodelclass", $LexIniDefMdlCls)
-
- ; When installing under WinOS2, turn off enumeration of local ports
- IfEqual($INWINOS2, "Y",
- SetINI($WinINI, "MarkVision", "EnumLocalPorts", "0"))
-
- ; Make a Program Manager group?
- IfEqual($Install_ProgmanGroup, "Y", CallMacro(InstallProgmanGroup, , ))
-
- ; In order for bi-di to work, we need to restart Windows
- SetRebootFlag()
- )
-
-
-
- ; InstallSoundDriver: Sets up the PC-Speaker sound driver.
- ; No return code.
- ;
- InstallSoundDriver()
- (
- InstallComponent(SpeakerDrv)
-
- ; Update system.ini
- SetINI($SystemINI, "drivers", "wave", "speaker.drv")
- )
-
-
-
- ; ConfigureRemoteMarkVision: Set up the local machine to run the
- ; remote copy of MarkVision.
- ;
- ConfigureRemoteMarkVision()
- (
- ; Temporarily set $APPDIR to reference the remote MV dir. Right now,
- ; the $SCRIPTDIR is in the MarkVision remote directory...
- SetVariable($TempAppDir, $APPDIR)
- SetVariable($APPDIR, $SCRIPTDIR)
-
- ; Install the VXD on their local machine
- CallMacro(InstallVXD, , )
-
- ; Copy lexpanel.ini from RemoteMVDir to '$TEMPDIR'
- MakePathName($ConfigureRemoteMarkVision, , $TEMPDIR, "lexpanel.ini")
- MakePathName($TempString, , $APPDIR, "lexpanel.ini")
- CopyFile($TempString, $ConfigureRemoteMarkVision)
-
- ; Copy the [MarkVision]NetDll line from lexpanel.ini to win.ini
- ; grw:950307 - if there is one
- GetINI($ConfigureRemoteMarkVision, "MarkVision", "NetDLL", $TempString)
- IfEqual($TempString, "", NOP(),
- SetINI($WININI, "MarkVision", "NetDLL", $TempString))
-
- ; Now configure MarkVision as usual, except that the INI file is
- ; in the Windows directory instead of in their MV directory
- CallMacro(ConfigureMarkVision, , $WINDOWSDIR)
-
- ; Restore $APPDIR
- SetVariable($APPDIR, $TempAppDir)
- )
-
-
-
- ; MakeDefaultAppDir: This function sets $APPDIR to its default value.
- ; The return value is the drive from the $TEMPDIR variable.
- ; grw:950321 - This macro is called when we decide that MV
- ; has not been installed on this machine before.
- ;
- MakeDefaultAppDir()
- (
- ; Find the drive that stores this temporary directory
- SplitPath($TEMPDIR, $MakeDefaultAppDir, , )
-
- ; Make a MarkVision directory on this drive
- MakePathName($APPDIR, $MakeDefaultAppDir, $Str_DefaultMVDir, )
- )
-
-
-
- ; MVPreRun: grw:950323 - This is split out of 'Initialize()', for things
- ; which may need to be done multiple times in one session.
- ;
- MVPreRun()
- (
- ; When not in 386Enh mode, MarkVision cannot be executed, so disable the
- ; install (for when they use 'Custom')
- ; grw:950323 - This also disables installing MarkVision for 'express.'
- CallLibrary(MVUtility, In386Enh, $MVPreRun, )
- IfEqual($MVPreRun, $NO, SetVariable($Install_MarkVision, $NO))
- )
-
-
-
- ; Initialize: Called before any other macros are run and before any
- ; GUI stuff is shown.
- ; The return value is meaningless (used as a temporary string.)
- ;
- Initialize()
- (
- ; Is MarkVision already installed somewhere? Check for the
- ; 'configuration=' entry under '[MarkVision]' in win.ini.
- IfEqual($LexpanelINI, "",
- GetINI($WinINI, "MarkVision", "configuration", $LexpanelINI))
- IfEqual($LexpanelINI, "",
- CallMacro(MakeDefaultAppDir, , ),
- CallMacro(StripFilename, $APPDIR, ($LexpanelINI)))
- ; grw:950321 - We need to do some more work for $APPDIR if '$LexpanelINI'
- ; is not blank, allowing for MV running from server.
- IfEqual($APPDIR, $WINDOWSDIR, CallMacro(MakeDefaultAppDir, , ))
-
- ; Initialize some global variables
- MakePathName($READMEVIEWER, , $WINDOWSDIR, "notepad.exe")
-
- ; Add lexpanel.ini to the list of settings files
- SettingsFile("lexpanel.ini", $Str_Desc_LexpanelINI)
-
- CallMacro(MVPreRun, , )
- )
-
-
-
- ; Entry point when the script is run independently.
- ;
- InstallRemoteMarkVision($cmdline)
- (
- ; Pretend we are in "Custom" mode so the user is asked questions, like
- ; how to name their mv icon
- SetVariable($INSTALLMODE, "C")
-
- CallMacro(ConfigureRemoteMarkVision, , )
- )
-